//package com.lagou.service.impl;
//
//import com.lagou.entity.GoodDetail;
//import com.lagou.entity.OrderDetail;
//import com.lagou.repository.GoodRepository;
//import com.lagou.repository.OrderRepository;
//import com.lagou.service.IGoodService;
//import com.lagou.service.IOrderService;
//import com.lagou.service.IRedisService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.Date;
//import java.util.List;
//import java.util.Optional;
//
///**
// * @author: lidy
// * @date: 2021/8/9 15:23
// */
//@Service
//@Slf4j
//public class OrderServiceImpl implements IOrderService {
//
//    @Autowired
//    private OrderRepository orderRepository;
//
//    @Autowired
//    private IRedisService redisService;
//
//    @Autowired
//    private GoodRepository goodRepository;
//
//    @Autowired
//    private IGoodService goodService;
//
//    private final static String GOOD_NUMBER = "good_number:";
//
//    @Override
//    public OrderDetail save(Integer id, String userId) {
//        Optional<GoodDetail> optional = goodRepository.findById(id);
//        OrderDetail orderDetail = new OrderDetail();
//        orderDetail.setGoodId(id);
//        orderDetail.setCreateTime(new Date());
//        orderDetail.setUpdateTime(new Date());
//        orderDetail.setUserId(userId);
//        orderDetail.setOrderStatus(3); // 处理中
//        optional.ifPresent(goodDetail -> {
//            orderDetail.setGoodName(goodDetail.getName());
//        });
//        orderRepository.save(orderDetail);
//        log.info("添加订单成功:{}",orderDetail);
//        return orderDetail;
//    }
//
//    @Override
//    public void update(Integer orderId) {
//        if(orderId % 3 == 0) {
//            log.info("模拟回调失败的情况");
//            return;
//        }
//        Optional<OrderDetail> optional = orderRepository.findById(orderId);
//        optional.ifPresent((orderDetail) -> {
//            orderDetail.setOrderStatus(1);
//            orderRepository.save(orderDetail);
//        });
//        log.info("修改记录成功");
//    }
//
//    @Override
//    public void clean() {
//        List<OrderDetail> list = orderRepository.findAllByOrderStatus(3);
//        if(list == null || list.size() == 0) {
//            return;
//        }
//        for (OrderDetail orderDetail : list) {
//            long sub = new Date().getTime() - orderDetail.getCreateTime().getTime();
//            log.info("sub:" + sub);
//            if( sub < 2 * 60 * 1000) {
//                return;
//            }
//            orderDetail.setOrderStatus(2);
//            orderRepository.save(orderDetail);
//            goodService.incGoodNumber(orderDetail.getGoodId(), 1);
//            log.info("修改订单状态为失败，超时");
//        }
//    }
//}
